#pragma once
#ifndef STRATEGY_H
#define STRATEGY_H

#include "define.h"

class WrapStrategy
{
private:
	int strategyId;
	std::string extension;
	ULONG64 headerSize;
	BYTE* header;
public:
	WrapStrategy(int strategyId, std::string extension, ULONG64 headerSize, BYTE* header);
	int getStrategyId();
	std::string getExtensionName();
	std::string getExtension();
	ULONG64 getHeaderSize();
	BYTE* getHeader();
};

static std::map<int, WrapStrategy*> strategyMap = {
	{1, new WrapStrategy(1, "png", HEAD_SIZE_PNG, BLANK_PNG_HEAD)},
	{2, new WrapStrategy(2, "mp4", HEAD_SIZE_MP4, BLANK_MP4_HEAD)},
	{3, new WrapStrategy(3, "exe", HEAD_SIZE_EXE, BLANK_EXE_HEAD)},
	{4, new WrapStrategy(4, "mov", HEAD_SIZE_MOV, BLANK_MOV_HEAD)},
};

#endif